{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# python notebook for Make Your Own Neural Network\n",
    "# working with the MNIST data set\n",
    "# this code demonstrates rotating the training images to create more examples\n",
    "#\n",
    "# (c) Tariq Rashid, 2016\n",
    "# license is GPLv2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy\n",
    "import matplotlib.pyplot\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# scipy.ndimage for rotating image arrays\n",
    "import scipy.ndimage"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# open the CSV file and read its contents into a list\n",
    "data_file = open(\"mnist_dataset/mnist_train_100.csv\", 'r')\n",
    "data_list = data_file.readlines()\n",
    "data_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# which record will be use\n",
    "record = 6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# scale input to range 0.01 to 1.00\n",
    "all_values = data_list[record].split(',')\n",
    "scaled_input = ((numpy.asfarray(all_values[1:]) / 255.0 * 0.99) + 0.01).reshape(28,28)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.01\n",
      "1.0\n"
     ]
    }
   ],
   "source": [
    "print(numpy.min(scaled_input))\n",
    "print(numpy.max(scaled_input))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7f71a5375668>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n0obtWUnNiKj9nLDtr0t6X9JvIuL8YtnPJb0VEXcXfzhPi4ifjEi2zZLer3vm5mJCmdULZ5aWdJWk\nH6jG164k1zWq4XWrY88/KemViHg1Ij6U9HtJ62vIMfIi4ilJb31m8XpJ08Xtac3/zzN0bbKNhIg4\nGBHPFbffk3RsZulaX7uSXLWoo/xnSHp9wf39Gq0pv0PSk7ZnbE/VHWYR48W06ZL0hqTxOsMsouPM\nzcP0mZmlR+a162XG66pxwO/zLomIdZK+I+mG4u3tSIr5z2yjdLqmq5mbh2WRmaU/Vedr1+uM11Wr\no/wHJJ214P6ZxbKREBEHiuvDkh7V6M0+fOjYJKnF9eGa83xqlGZuXmxmaY3AazdKM17XUf5nJZ1r\ne43t5ZK+J2lHDTk+x/YpxYEY2T5F0rc1erMP75C0qbi9SdJjNWb5P6Myc3O7maVV82s3cjNeR8TQ\nL5Ku0PwR//9I+mkdGdrkOkfSP4rLS3Vnk/Sw5t8GfqT5YyPXSjpd0i5JL0t6UtLKEcr2W0kvSnpB\n80VbXVO2SzT/lv4FSbuLyxV1v3YluWp53fiGH5AUB/yApCg/kBTlB5Ki/EBSlB9IivIDSVF+ICnK\nDyT1PxaBvvZVxMOzAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f71a86e6668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the original image\n",
    "matplotlib.pyplot.imshow(scaled_input, cmap='Greys', interpolation='None')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# create rotated variations\n",
    "# rotated anticlockwise by 10 degrees\n",
    "inputs_plus10_img = scipy.ndimage.rotate(scaled_input, 10.0, cval=0.01, order=1, reshape=False)\n",
    "# rotated clockwise by 10 degrees\n",
    "inputs_minus10_img = scipy.ndimage.rotate(scaled_input, -10.0, cval=0.01, order=1, reshape=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.01\n",
      "0.99748795356\n"
     ]
    }
   ],
   "source": [
    "print(numpy.min(inputs_plus10_img))\n",
    "print(numpy.max(inputs_plus10_img))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7f71a52d0198>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f71a5375e48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the +10 degree rotated variation\n",
    "matplotlib.pyplot.imshow(inputs_plus10_img, cmap='Greys', interpolation='None')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7f71a51edb70>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f71a526a668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the +10 degree rotated variation\n",
    "matplotlib.pyplot.imshow(inputs_minus10_img, cmap='Greys', interpolation='None')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
